package cn.iocoder.yudao.module.member.controller.admin.job.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 职位分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class JobPageReqVO extends PageParam {

    @Schema(description = "职位名称", example = "张三")
    private String jobName;

    @Schema(description = "关键词", example = "张三")
    private String name;

    @Schema(description = "招聘类型", example = "张三")
    private String jobType;
    @Schema(description = "复制链接", requiredMode = Schema.RequiredMode.REQUIRED)
    private String url;
    @Schema(description = "公司ID", example = "15070")
    private Long companyId;

    @Schema(description = "专业ID", example = "4913")
    private Long majorId;

    @Schema(description = "专业名称", example = "李四")
    private String majorName;

    @Schema(description = "届别要求")
    private String classRequirements;

    @Schema(description = "企业类型")
    private String companyNature;

    @Schema(description = "最低学历")
    private String minEducation;
    private List<String> mins;
    @Schema(description = "精准筛选学历多选")
    private String minEducations;

    @Schema(description = "省ID", example = "29745")
    private Long provinceId;

    @Schema(description = "省名称", example = "李四")
    private String provinceName;

    @Schema(description = "市id", example = "20339")
    private Long cityId;

    @Schema(description = "市名称", example = "张三")
    private String cityName;

    @Schema(description = "区ID", example = "30620")
    private Long districtId;

    @Schema(description = "区名称", example = "芋艿")
    private String districtName;

    @Schema(description = "详细地址")
    private String address;

    @Schema(description = "职位描述")
    private String jobDetail;
    @Schema(description = "1 24小时之内  2 7天之内")
    private String type;
    @Schema(description = "是否上架 0 否 1 是")
    private Boolean isShelved;

    @Schema(description = "上架时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] shelvedTime;

    @Schema(description = "是否推荐 0 否 1 是")
    private Boolean isRecommend;

    @Schema(description = "推荐时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] recommendTime;

    @Schema(description = "浏览人数")
    private Integer visitNum;

    @Schema(description = "投递人数")
    private Integer sendNum;

    @Schema(description = "招聘开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] hireBeginTime;

    @Schema(description = "招聘结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] hireEndTime;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;


    @Schema(description = "岗位开启时间 今天：today，近三天：threeDays，近一周：oneWeek，近一个月：oneMonth，近三个月：threeMonths，不限：unlimited")
    private String timeRange;

    private List<String> companyNatures;

    private List<String> jobTypes;
}